package com.ly.heart.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.ly.common.core.domain.ActCurrentTaskVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.util.Date;

@Data
@ApiModel(value="采购退料单返回Vo")
@JsonInclude(JsonInclude.Include.ALWAYS)
@Accessors(chain = true)
public class KingProcureRefundVo{

    @ApiModelProperty("采购退料单id")
    private String id;

    @ApiModelProperty ( "项目id" )
    private String projectId;

    @ApiModelProperty ( "项目编码" )
    private String projectCode;

    @ApiModelProperty ( "项目名称" )
    private String projectName;

    @ApiModelProperty ("退料单编码")
    private String docCode;

    @ApiModelProperty ("退料日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date refundTime;

    @ApiModelProperty ("供应商id")
    private String supplierId;

    @ApiModelProperty ("供应商编码")
    private String supplierCode;

    @ApiModelProperty ("供应商名称")
    private String supplierName;

    @ApiModelProperty ("源单Id")
    private String sourceId;

    @ApiModelProperty ("源单物料明细Id")
    private String sourceMaterialDetailId;

    @ApiModelProperty ("物料明细Id")
    private String materialDetailId;

    @ApiModelProperty ("物料Id")
    private String materialId;

    @ApiModelProperty ("物料编码")
    private String materialCode;

    @ApiModelProperty ("物料名称")
    private String materialName;

    @ApiModelProperty ("规格型号")
    private String model;

    @ApiModelProperty ( "货主类型" )
    private String cargoOwnerType;

    @ApiModelProperty ( "源单类型" )
    private String sourceType;

    @ApiModelProperty ( "辅单位" )
    private String auxiliaryUnit;

    @ApiModelProperty ( "库存单位" )
    private String inventoryUnit;

    @ApiModelProperty ( "库存单位名称" )
    private String inventoryUnitName;

    @ApiModelProperty ( "实退数量(辅单位)" )
    private String refundNumAuxiliary;

    @ApiModelProperty ( "实退数量" )
    private String refundNum;

    @ApiModelProperty ( "采购数量(基本单位)" )
    private String purchaseNumBase;

    @ApiModelProperty ( "补料数量" )
    private String repairNum;

    @ApiModelProperty ( "扣款数量" )
    private String deductionNum;

    @ApiModelProperty ( "仓库id" )
    private String warehouseId;

    @ApiModelProperty ( "仓库编码" )
    private String warehouseCode;

    @ApiModelProperty ( "仓库名称" )
    private String warehouseName;

    @ApiModelProperty ( "供应商批号" )
    private String supplierBatchNum;

    @ApiModelProperty ( "应退数量" )
    private String refundedNum;

    @ApiModelProperty ( "货主" )
    private String cargoOwner;

    @ApiModelProperty ( "仓位" )
    private String warehousePosition;

    @ApiModelProperty ( "基本单位单价" )
    private String baseUnitPrice;

    @ApiModelProperty ( "备注" )
    private String remark;

    @ApiModelProperty ( "采购入库单code" )
    private String sourceInventoryCode;

    @ApiModelProperty ( "基本单位" )
    private String baseUnit;

    @ApiModelProperty ( "基本单位名称" )
    private String baseUnitName;

    @ApiModelProperty ( "库存基本数量" )
    private String inventoryNumBase;

    @ApiModelProperty ( "保管员" )
    private String keepingBy;

    @ApiModelProperty ( "单价" )
    private String price;

    @ApiModelProperty ( "折扣率" )
    private String discountRate;

    @ApiModelProperty ( "价税合计" )
    private String totalTaxPrice;

    @ApiModelProperty ( "金额" )
    private String amountMoney;

    @ApiModelProperty ( "税率" )
    private String taxRate;

    @ApiModelProperty ( "净价" )
    private String netAmount;

    @ApiModelProperty ("税额")
    private String taxAmount;

    @ApiModelProperty ("汇率")
    private String exchangeRate;

    @ApiModelProperty ("税额(本位币)")
    private String taxAmountBase;

    @ApiModelProperty ("金额(本位币)")
    private String amountMoneyBase;

    @ApiModelProperty ("价税合计(本位币)")
    private String totalTaxPriceBase;

    @ApiModelProperty ("退料类型（检验退料：A 库存退料：B）")
    private String refundType;

    @ApiModelProperty ("退料类型名称")
    private String refundTypeName;

    @ApiModelProperty ("退料方式(退料补料A 退料并扣款B)")
    private String refundMethod;

    @ApiModelProperty ("退料方式名称")
    private String refundMethodName;

    @ApiModelProperty ( "批号" )
    private String batchNum;

    @ApiModelProperty ("行号")
    private String lineNumber;

    @ApiModelProperty ("业务含税单价")
    private String businessTaxPrice;

    @ApiModelProperty ("业务单价")
    private String businessPrice;

    @ApiModelProperty ("创建人")
    private String createBy;

    @ApiModelProperty ("创建时间")
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    private Date createTime;

    @ApiModelProperty ("状态")
    private String state;

    @ApiModelProperty ("状态名称")
    private String stateName;

    @ApiModelProperty ( "流程实例id" )
    private String instanceId;

    @ApiModelProperty ( "当下审批人" )
    private String approvedUser;

    @ApiModelProperty ( "审批内容" )
    private String approvedRemark;

    @ApiModelProperty ( "当前任务信息" )
    private ActCurrentTaskVo currentTask;

    @ApiModelProperty ("是否推送金蝶")
    private Integer isSend;


    /**
     * 以下为新增字段，需要单独处理
     */
    @ApiModelProperty ( "当月总成本" )
    private String currentMonthTotalCost;

    @ApiModelProperty ( "当月单位成本" )
    private String currentMonthUnitCost;

    @ApiModelProperty ( "当月总成本(本位币)" )
    private String currentMonthTotalCostBase;

    @ApiModelProperty ( "当月单位成本(本位币)" )
    private String currentMonthUnitCostBase;

    @ApiModelProperty ( "累计应付数量(已审核)" )
    private String totalPayableNum;

    @ApiModelProperty ( "累计应付价税合计" )
    private String totalPayableTotalPriceTax;

    @ApiModelProperty ( "剩余应付数量(已审核)" )
    private String surplusPayableNum;

    @ApiModelProperty ( "剩余应付价税合计" )
    private String surplusPayableTotalPriceTax;

    @ApiModelProperty ( "累计应付单对应源单金额" )
    private String totalPayableSourceDocAmount;

    @ApiModelProperty ( "累计应付单对应源单价税合计" )
    private String totalPayableSourceDocTotalPriceTax;

    @ApiModelProperty ( "剩余应付单对应源单金额" )
    private String surplusPayableSourceDocAmount;

    @ApiModelProperty ( "剩余应付单对应源单价税合计" )
    private String surplusPayableSourceDocTotalPriceTax;




}
